class Solution {
public:
    int waysToStep(int n) {
        vector<long long> dp(n+10);
        dp[0]=0;
        dp[1]=1;
        dp[2]=2;
        dp[3]=4;
        long long mod=1000000007;
        if(n==0) return 0;
        if(n==1) return 1;
        if(n==2) return 2;
        if(n==3) return 4;
        for(long long i=4;i<=n;++i)
        {
            dp[i]=dp[i-1]%mod+dp[i-2]%mod+dp[i-3]%mod;
        }
        return dp[n]%mod;
    }
};
